// app.js
App({
  onLaunch: function () {
    if (!wx.cloud) {
      console.error("请使用 2.2.3 或以上的基础库以使用云能力");
    } else {
      wx.cloud.init({
        // env 参数说明：
        //   env 参数决定接下来小程序发起的云开发调用（wx.cloud.xxx）会默认请求到哪个云环境的资源
        //   此处请填入环境 ID, 环境 ID 可打开云控制台查看
        //   如不填则使用默认环境（第一个创建的环境）
        env: "cloud1-2g0wiywif033c9e4",
        traceUser: true,
      });
    }

    this.globalData = {
      userInfo: null,
      userRole: null,
      openid: null,
    };
  },
  
  // 更新全局用户信息
  updateGlobalUserInfo: function(userInfo, userRole, openid) {
    this.globalData.userInfo = userInfo;
    this.globalData.userRole = userRole;
    this.globalData.openid = openid;
  },
  
  // 清除全局用户数据
  clearGlobalUserInfo: function() {
    this.globalData.userInfo = null;
    this.globalData.userRole = null;
    this.globalData.openid = null;
  },
  
  // 检查用户角色权限
  checkUserRole: function(requiredRole, callback) {
    const currentUserInfo = this.globalData.userInfo;
    const currentUserRole = this.globalData.userRole;

    if (!currentUserInfo || !currentUserRole) {
      // 未登录或信息不全，跳转到登录页
      wx.reLaunch({
        url: '/pages/login/login'
      });
      if (callback) callback(false, null);
      return false; // 返回权限状态
    }
    
    // 检查用户角色是否符合要求
    const hasPermission = requiredRole === currentUserRole;
    
    if (callback) {
      callback(hasPermission, currentUserRole);
    } else if (!hasPermission) {
      // 无权限访问，提示用户
      wx.showToast({
        title: '您没有权限访问此功能',
        icon: 'none',
        duration: 2000
      });
      
      // 延迟后返回上一页或首页
      setTimeout(() => {
        if (getCurrentPages().length > 1) {
            wx.navigateBack({ delta: 1 });
        } else {
            // 根据应用设计，可以跳转到默认的首页
            // wx.switchTab({ url: '/pages/home/home' }); 
        }
      }, 2000);
    }
    return hasPermission; // 返回权限状态
  }
});
